<template>
   <view > 
   <button @click="startScan"> 扫一扫</button></view>
   <view>{{result}}</view>
</template>

<script>
  
export default {
  data() {
    return {
		result:''
    };
  },
  mounted() {
  },
  methods: {
	       startScan() {
	         const scannerG = uni.requireNativePlugin('Ba-Scanner-G'); // 引入插件
	         scannerG.onScan(
	           {
	             // 基础配置
	             isShowVibrate: true,      // 扫描成功震动
	             isShowBeep: false,         // 播放提示音
	             isShowPhotoAlbum: true,   // 显示相册入口
	             zoom: true,               // 启用手势缩放
	             
	             // 界面定制
	             scanColor: "#00FF00",     // 扫描线颜色（绿色）
	             hintText: "对准二维码",    // 提示文字
	             hintTextColor: "#FFFFFF", // 文字颜色
	             scanGrid: true,           // 使用网格扫描样式:cite[1]:cite[3]
	           },
	           (res) => {  // 回调处理
	             if (res.code === "success") {
					 this.result = JSON.stringify(res)
	               uni.showToast({ title: `扫描成功：${res.result}` });
	               // 跳转到结果页（示例）
	               uni.navigateTo({ url: `/pages/result?data=${res.result}` });
	             } else {
	               uni.showToast({ title: "扫描失败", icon: "none" });
	             }
	           }
	         );
	       }
	   
	   }
     
};
</script>

<style>
.camera {
  width: 100%;
  height: 100vh;
}
.scan-mask {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
}
.scan-frame {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 70%;
  height: 200px;
  border: 2px solid #00ff00;
}
.tip {
  position: absolute;
  bottom: 100px;
  left: 0;
  width: 100%;
  text-align: center;
  color: white;
}
</style>